package com.admin.business.portalWebsite.venusSysStatute;

import com.tiangong.framework.annotation.OpenApi;
import com.tiangong.framework.bo.CDO;
import com.tiangong.framework.bo.Return;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;

/**
 * @description: 法律法规
 * @create: 2023-11-18 16:45:42
 **/
@Service("venusSysStatuteService")
@Slf4j
public class VenusSysStatuteService{

    @Resource
    VenusSysStatuteDao venusSysStatuteDao;

    /**
     * 添加法律法规,获取id数据
     *
     * @param cdoRequest - id:主键
     *                   - user_id:发布者ID
     *                   - statute_sort:分类
     *                   - statute_text:法律内容
     *                   - statute_name:法律名称
     *                   - statute_code:案号
     *                   - statute_expert:管理员认证 0、正常；1、失效 ；2、已认证； 
     *                   - statute_browse:浏览量
     *                   - statute_type:法律法规类型：0、全国法律法规；1、地方法律法规；2、判决案例
     *                   - statute_upload:内容格式：0、内容，1、PDF，2、图片
     *                   - statute_option:选项：一审、二审、终审
     *                   - statute_company:发布单位
     *                   - statute_province:省级
     *                   - statute_city:市级
     *                   - statute_area:区级
     *                   - effective_time:生效时间
     *                   - update_time:更新时间
     *                   - begin_time:创建时间
     *                   - state:是否删除：0、正常，1、已删除；
     * @return
     * @author wdf
     * @create: 2023-11-18 16:45:42
     */
    @OpenApi
    public Return addVenusSysStatute(CDO cdoRequest) {
        venusSysStatuteDao.addVenusSysStatute(cdoRequest);
        CDO cdoResult = new CDO();
        if (cdoRequest.containsKey("id")) {
            cdoResult.set("id", cdoRequest.get("id"));
        }
        return Return.valueOf(cdoResult);
    }

    /**
     * 根据id，更新法律法规数据
     *
     * @param cdoRequest - id:主键
     *                   - user_id:发布者ID
     *                   - statute_sort:分类
     *                   - statute_text:法律内容
     *                   - statute_name:法律名称
     *                   - statute_code:案号
     *                   - statute_expert:管理员认证 0、正常；1、失效 ；2、已认证； 
     *                   - statute_browse:浏览量
     *                   - statute_type:法律法规类型：0、全国法律法规；1、地方法律法规；2、判决案例
     *                   - statute_upload:内容格式：0、内容，1、PDF，2、图片
     *                   - statute_option:选项：一审、二审、终审
     *                   - statute_company:发布单位
     *                   - statute_province:省级
     *                   - statute_city:市级
     *                   - statute_area:区级
     *                   - effective_time:生效时间
     *                   - update_time:更新时间
     *                   - begin_time:创建时间
     *                   - state:是否删除：0、正常，1、已删除；
     * @return
     * @author wdf
     * @create: 2023-11-18 16:45:42
     */
    @OpenApi
    public Return updateVenusSysStatuteById(CDO cdoRequest) {
        venusSysStatuteDao.updateVenusSysStatuteById(cdoRequest);
        return Return.SUCCESS;
    }

    /**
     * 根据id，删除法律法规数据
     *
     * @param cdoRequest - id:主键
     * @return
     * @author wdf
     * @create: 2023-11-18 16:45:42
     */
    @OpenApi
    public Return deleteVenusSysStatuteById(CDO cdoRequest){
        int count = venusSysStatuteDao.deleteVenusSysStatuteById(cdoRequest.getString("id"));
        CDO cdoResult = new CDO();
        cdoResult.set("count", count);
        return Return.valueOf(cdoResult);
    }

    /**
     * 根据条件，删除法律法规数据
     *
     * @param cdoRequest
     * @return
     * @author wdf
     * @create: 2023-11-18 16:45:42
     */
    @OpenApi
    public Return deleteVenusSysStatute(CDO cdoRequest) {
        int count = venusSysStatuteDao.deleteVenusSysStatute(cdoRequest);
        CDO cdoResult = new CDO();
        cdoResult.set("count", count);
        return Return.valueOf(cdoResult);
    }

    /**
     * 根据ID，获取法律法规数据
     *
     * @param cdoRequest - id:主键
     * @return
     * @author wdf
     * @create: 2023-11-18 16:45:42
     */
    @OpenApi
    public Return getVenusSysStatuteById(CDO cdoRequest) {
        CDO cdoMapperResult = venusSysStatuteDao.getVenusSysStatuteById(cdoRequest.getString("id"));
        return Return.valueOf(cdoMapperResult);
    }

    /**
     * 根据非空条件，获取法律法规数据列表
     *
     * @param cdoRequest
     * @return
     * @author wdf
     * @create: 2023-11-18 16:45:42
     */
    @OpenApi
    public Return getVenusSysStatuteListPage(CDO cdoRequest) {
        Integer pageIndex = cdoRequest.getInteger("pageIndex")-1;
        int recordSize = 10;
        cdoRequest.set("recordFrom", pageIndex * recordSize);
        cdoRequest.set("recordSize", recordSize);
        List<CDO> cdoMapperResultList = venusSysStatuteDao.getVenusSysStatuteListPage(cdoRequest);
        boolean isEndPage = false;
        if (cdoMapperResultList.size() < recordSize) {
            isEndPage = true;
        }
        CDO cdoResult = new CDO();
        cdoResult.set("isEndPage", isEndPage);
        cdoResult.set("datalist", cdoMapperResultList);
//        int total = venusSysStatuteDao.getVenusSysStatuteCount(cdoRequest);
//        cdoResult.set("total", total);
        return Return.valueOf(cdoResult);
    }
    /**
     * 根据混合条件，获取法律法规数据列表
     *
     * @param cdoRequest - id:主键
     * @return
     * @author wdf
     * @create: 2023-11-18 16:45:42
     */
    @OpenApi
    public Return getVenusSysStatuteListPageByCondition(CDO cdoRequest) {
        Integer pageIndex = cdoRequest.getInteger("pageIndex")-1;
        int recordSize = 10;
        cdoRequest.set("recordFrom", pageIndex * recordSize);
        cdoRequest.set("recordSize", recordSize);
        List<CDO> cdoMapperResultList = venusSysStatuteDao.getVenusSysStatuteListPageByCondition(cdoRequest);
        boolean isEndPage = false;
        if (cdoMapperResultList.size() < recordSize) {
            isEndPage = true;
        }
        CDO cdoResult = new CDO();
        cdoResult.set("isEndPage", isEndPage);
        cdoResult.set("datalist", cdoMapperResultList);
//        int total = venusSysStatuteDao.getVenusSysStatuteCount(cdoRequest);
//        cdoResult.set("total", total);
        return Return.valueOf(cdoResult);
    }
}
